package poo.exo1;

import java.io.*;
import java.util.*;

public class Vehicule  {
        private int identifiant;
        private String marque;
        private String nomModele;
        private String dateMiseEnCirculation ;
        private double kilometrage;
        private double prix;
        private int nbExemplaire;
        
        
        public Vehicule(int identifiant,String marque, String nomModele, String dateMiseEnCirculation,double kilometrage, double prix, int nbExemplaire) {
                this.identifiant =identifiant;
                this.marque= marque;
                this.nomModele=nomModele;
                this.dateMiseEnCirculation =dateMiseEnCirculation ;
                this.kilometrage = kilometrage;
                this.prix = prix;
                this.nbExemplaire = nbExemplaire;
        }
        
        @Override
        public String toString() {
                return "Vehicule : id=" + identifiant + "\n marque=" + marque
                                + ", Modele=" + nomModele + ", Mise en circulation="
                                + dateMiseEnCirculation + ", kilometre=" + kilometrage
                                + ", prix=" + prix + ", Exemplaire disponible=" + nbExemplaire ;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Vehicule other = (Vehicule) obj;
                if (dateMiseEnCirculation == null) {
                        if (other.dateMiseEnCirculation != null)
                                return false;
                } else if (!dateMiseEnCirculation.equals(other.dateMiseEnCirculation))
                        return false;
                if (identifiant != other.identifiant)
                        return false;
                if (Double.doubleToLongBits(kilometrage) != Double
                                .doubleToLongBits(other.kilometrage))
                        return false;
                if (marque == null) {
                        if (other.marque != null)
                                return false;
                } else if (!marque.equals(other.marque))
                        return false;
                if (Double.doubleToLongBits(nbExemplaire) != Double
                                .doubleToLongBits(other.nbExemplaire))
                        return false;
                if (nomModele == null) {
                        if (other.nomModele != null)
                                return false;
                } else if (!nomModele.equals(other.nomModele))
                        return false;
                if (Double.doubleToLongBits(prix) != Double
                                .doubleToLongBits(other.prix))
                        return false;
                return true;
        }
        
        public void readData(Scanner in)
        {
                String line = in.nextLine ( ) ;
                // e x p r e s s i on r a t i o n n e l l e pour par s e r chaque l i g n e s e l on l e se p a r a t eur j
                String [ ] tokens = line.split ( "\\| " ) ;
                 // l e nom se t rouv e dans l a premiere case du t a b l e a u
                int id = Integer.parseInt ( tokens [ 0 ] ) ;
                if( id==this.identifiant)
                {
                        System.out.println(this.toString()) ;
                }
        }
        
        public int getIdentifiant() {
                return identifiant;
        }

        public void writeData(PrintWriter out)
        {
                
                out.printf("%d|%s|%s|%s|%g|%g|%d", this.identifiant,this.marque,this.nomModele,this.dateMiseEnCirculation,this.kilometrage,this.prix,this.nbExemplaire);
                out.println();
                
        }
        
        public void majExemplaire() throws MonException
        {
                if(this.nbExemplaire<=0)
                {
                        throw new MonException ("Erreur : Plus de vehicule disponible !") ;
                }
                else
                {
                        this.nbExemplaire--;
                }
        }


        
        
}

